package io;

import java.io.*;

/**
 * 使用缓冲输出流写出数据的缓冲区问题
 */
public class BOS_flushBemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("demo.txt");
        BufferedOutputStream fos1 = new BufferedOutputStream(fos);
        String line = "让我再看你一眼，从南到北。";
        byte[] data = line.getBytes("utf-8");
        fos1.write(data);//内容不够8k，缓冲区未写出，1.调动flush 2.关闭缓冲区(一半只有在程序结束时调用，不介意用来当flush使用）
        //频繁的调用flush会增加实际写出数据的次数，写出次数多则写效率差，但是可以提高写出数据的即时性
        fos1.flush();//调动flush可以强制将缓冲流中已经缓存的数据一次写出
        System.out.println("写出完毕！");
        fos1.close();//缓冲流的close方法中会执行一次flush




    }
}
